package com.lp.biz.operations.service;

import com.lp.biz.operations.model.vo.TaskCreate;
import com.lp.biz.train.model.vo.ClassModerator;
import com.lp.common.entity.PageParams;
import com.lp.common.utils.CommonResult;

/**
 * @program: backend
 * @description:
 * @author: Ke.Song
 * @since: 2024-08-06 20:59:32
 */
public interface TaskService {

    /**
     * 获取申请活动列表
     * @param query 查询参数
     * @return 查询结果
     */
    CommonResult getTaskApplyList(PageParams query);

    /**
     * 更换申请活动状态
     * @param applyId 申请id
     */
    void updateTaskApplyStatus(Integer applyId);

    /**
     * 是否通过活动
     *
     * @param applyId 申请id
     * @param status 状态
     */
    void updateTaskApplyState(Integer applyId, Integer status);

    /**
     * 创建活动
     * @param taskCreate 活动参数
     */
    void addTask(TaskCreate taskCreate);

    /**
     * 获取活动列表
     * @param query 查询参数
     * @return 查询结果
     */
    CommonResult getTasks(PageParams query);

    /**
     * 获取活动详情
     * @param taskId 活动ID
     * @return 查询结果
     */
    CommonResult getTaskDetail(Integer taskId);

    /**
     * 获取活动人员列表
     * @param taskId 活动ID
     * @param query 查询参数
     * @return 查询结果
     */
    CommonResult getMembers(Integer taskId, PageParams query);

    /**
     * 设置活动主持人
     * @param taskId 活动id
     * @param moderator 主持人
     */
    void updateModerator(Integer taskId, ClassModerator moderator);

    /**
     * 参与/未参与活动
     * @param memberId 用户id
     * @param taskId 任务id
     */
    void updateJoin(Integer memberId, Integer taskId);

    /**
     * 活动点评/未点评
     * @param memberId 用户id
     * @param taskId 活动id
     */
    void updateReview(Integer memberId, Integer taskId);
}
